package com.zczc.tagmanagement.service.impl;

import com.github.pagehelper.PageInfo;
import com.yishuifengxiao.common.tool.bean.BeanUtil;
import com.zczc.tagmanagement.dao.TagSortsDao;
import com.zczc.tagmanagement.dto.TagSortsDTO;
import com.zczc.tagmanagement.entity.TagSorts;
import com.zczc.tagmanagement.service.TagSortsService;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Author:Mark
 * @Description:
 * @Date: Created on 10:41 2018-12-11
 * @Modify by:
 */
@Service
public class TagSortsServiceImpl implements TagSortsService {

  @Autowired
  private TagSortsDao tagSortsDao;


  @Override
  public Boolean addTagSorts(TagSorts tagSorts) throws Exception {
    Exception exception=null;
    if(tagSorts!=null){
      List<TagSorts> sortsList = tagSortsDao.selectAllTagSorts();
      for (TagSorts sorts : sortsList) {
        if(tagSorts.getSortName()!=null){
          if(tagSorts.getSortName().equals(sorts.getSortName())){
            exception=new Exception("改标签已经存在！");
            throw exception;
          }
        }
      }
      Integer temp=tagSortsDao.getAllSorts().size()+1;
      tagSorts.setSortCode(temp.toString()+temp.toString()+temp.toString());
      tagSorts.setDeleted(false);
      return tagSortsDao.addTagSorts(tagSorts)>0;
    }
    return false;
  }

  @Override
  public Boolean updateTagSortsById(TagSortsDTO sortsDTO) {
    TagSorts tagSorts = BeanUtil.copy(sortsDTO, new TagSorts());
    if(tagSorts!=null){
      return tagSortsDao.updateTagSortsById(tagSorts)>0;
    }
    return false;
  }

  @Override
  public Boolean deleteTagSortsLogic(List<String> ids) {
    if(ids!=null){
      return tagSortsDao.deleteTagSortsLogic(ids)>0;
    }
    return false;
  }

  @Override
  public PageInfo<TagSorts> selectTagSortsByPage(TagSorts tagSorts, Integer pageSize,
      Integer startPage) {
    pageSize=pageSize==null?20:pageSize;
    startPage=startPage==null?1:startPage;
    return tagSortsDao.selectTagSortsByPage(tagSorts,pageSize,startPage);
  }
}
